package com.quwan.app.service;

import com.alibaba.fastjson.JSONObject;
import com.quwan.app.vo.pay.NotifyProcessParams;
import com.quwan.entity.TSystemPrePay;
import java.util.function.Predicate;

/**
 * @author quan
 * @date 2021-06-19 15:18
 */

public interface PaymentService {

    /**
     *
     * @param consumeOrderId 订单交易号
     * @param transactionId 支付平台 交易号
     * @return
     */
    boolean updOrderPayFinishInfo(NotifyProcessParams params);

    /**
     *
     * @param orderId 支付订单id
     * @param preId 预支付id
     * @param memberId 会员id
     * @param type 0消费 1会员充值
     * @param memberId process 业务处理逻辑
     * @return
     */
    void doBalancePay(String orderId, String preId, String memberId, String type,String payPwd,Predicate<TSystemPrePay> process);

    /**
     * 更新vip支付完成 信息
     * @param orderId
     * @param transactionId
     * @param money
     * @return
     */
    boolean updVipPayFinishInfo(NotifyProcessParams params);

    /**
     * 更新 余额充值支付完成 信息
     * @param orderId
     * @param transactionId
     * @param money
     * @return
     */
    boolean updRechargeBalanceFinishInfo(NotifyProcessParams params);

    /**
     * 余额支付 派单订单状态修改
     * @param notifyProcessParams
     * @return
     */
    boolean updDispatchOrderPayFinishInfo(NotifyProcessParams notifyProcessParams);

    /**
     * 派单定金支付
     * @param notifyProcessParams
     * @return
     */
    boolean updBeforeDispatchOrderPayFinishInfo(NotifyProcessParams notifyProcessParams);

    void doGrantVip(String id,JSONObject data);

    void recordUniqueInfo(String unique, JSONObject data);
}
